//
//  AppDelegate.m
//  Project
//
//  Created by liting on 2025/8/29.
//

#import "AppDelegate.h"
#import "ViewController.h"
#import "LZTabBarController.h"
#import "HomeViewController.h"
#import "MineViewController.h"
#import <FlutterPluginRegistrant/GeneratedPluginRegistrant.h>


// 当使用共享引擎时，Flutter 引擎会保持之前页面的状态 initState 方法只走了一次
// 单引擎方案
// 多引擎方案
// 单引擎缓存问题
// 引入方式 https://juejin.cn/post/6844903760578215944 https://juejin.cn/post/6844904000211386375?searchId=202509021659513AA2B600B595C81F12C9 (组员都配置flutter环境或者直接引入flutter.framwork)
// 首次白屏问题解决
// 方法通信问题
// AppDelegate 中初始化的 FlutterEngine 确实会对自定义导航栏位置产生影响 (延时初始化,等到第一次使用时初始化)
// 路由方案
// 文件识别不到 因为 .gitignore 文件原因

// flutter 瘦身 https://xie.infoq.cn/article/f66dc029f4279cf755a29de0f

// https://juejin.cn/post/6844903890245124104 release 模式  未能打开问题


// 引擎释放问题

// 跳转对应页面解决

// LayoutBuilder

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

    LZTabBarController *tabBarController = [self setupTabBarController];
    self.window.rootViewController = tabBarController;
    [self.window makeKeyAndVisible];

    [self testURLConnection:[NSURL URLWithString:[NSString stringWithFormat:@"https://i0.hdslb.com/bfs/manga-static/29b2fdcd0454f442d6814fb9a99d4f8d6cbff339.jpg"]]];
    [self createEngine];
    return YES;
}


- (void)createEngine{
    self.engineGroup = [[FlutterEngineGroup alloc] initWithName:@"my_app.engine_group" project:nil];
}


// 测试URL是否可访问
- (void)testURLConnection:(NSURL *)url {
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [NSURLConnection sendAsynchronousRequest:request
                                       queue:[NSOperationQueue mainQueue]
                           completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        if (connectionError) {
            NSLog(@"网络连接错误: %@", connectionError);
            if (connectionError.code == -1022) {
                NSLog(@"ATS阻止了连接，需要配置Info.plist");
            }
        } else {
            NSLog(@"网络连接成功，可以尝试使用SDWebImage");

        }
    }];
}


- (LZTabBarController *)setupTabBarController {
    // 创建视图控制器
    HomeViewController *homeVC = [[HomeViewController alloc] init];
    MineViewController *profileVC = [[MineViewController alloc] init];

    // 创建标签栏控制器
    LZTabBarController *tabBarController = [LZTabBarController tabBarControllerWithViewControllers:@[homeVC, profileVC] titles:@[@"首页",@"我的"] images:@[@"tab_home", @"tab_discover"] selectedImages:@[@"tab_home_selected", @"tab_discover_selected"]];

    // 设置外观
    [tabBarController setTabBarTintColor:[UIColor systemBlueColor]
                            barTintColor:[UIColor whiteColor]
                         unselectedColor:[UIColor grayColor]];

    return tabBarController;
}

+ (AppDelegate *)sharedInstance {
    return (AppDelegate *)[UIApplication sharedApplication].delegate;
}

@end
